home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / APPLAUNC.PAK / APPWIN.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  5KB  |  113 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows - (C) Copyright 1991, 1993 by Borland International
  3. //----------------------------------------------------------------------------
  4. #if !defined(__APPWIN_H)
  5. #define __APPWIN_H
  6.  
  7. #include <owl\menu.h>
  8. #include <owl\floatfra.h>
  9. #include <owl\opensave.h>
  10. #include <owl\bitmapga.h>
  11. #include "appbtnba.h"
  12. #include "appmgr.h"
  13. #include "appbtn.h"
  14.  
  15. #define NO_ENTRY  '2'       // does not exist in INI file.
  16. #define INUSE     '1'       // in use by another instance of AppLauncher.
  17. #define NOT_INUSE '0'       // open, not used by any instance of AppLauncher.
  18. #define NEntries  128       // maximum number of instances that can be running.
  19.  
  20. //
  21. // Frame window of app. Contains the button bar and application manager.
  22. //
  23. class TAppWindow : public TFloatingFrame {
  24.   public:
  25.     static const int        NumBufSize;   // max size of number buffer.
  26.  
  27.     TAppWindow(char* title, TWindow* client, string& startupPath);
  28.     ~TAppWindow();
  29.  
  30.     void      SetupWindow();
  31.     void      CleanupWindow();
  32.  
  33.   protected:
  34.     LRESULT   CmProperties(WPARAM wParam, LPARAM lParam);
  35.     LRESULT   CmButtonPressed(WPARAM wParam, LPARAM lParam);
  36.     LRESULT   CmButtonDrag(WPARAM wParam, LPARAM lParam);
  37.     void      EvNCRButtonDown(UINT modKeys, TPoint& point);
  38.     void      EvDropFiles(TDropInfo drop);
  39.     void      EvEndSession(bool b, bool);
  40.  
  41.     void      CmAddApp();
  42.     void      CmRemoveApps();
  43.     void      CmConfigOptions();
  44.     void      CmReadConfig();
  45.     void      CmHelp();
  46.     void      CmDummy() {}
  47.     void      CmPlaceHolder();
  48.  
  49.   private:
  50.     unsigned                CurINISecNum; // section of INI file in use.
  51.     int                     SaveOnExit;   // save settings to INI file on exit?
  52.     int                     Orientation;  // 0 = Vertical, 1 =  Horizontal.
  53.     string&                 StartupPath;  // dir. AppLauncher was started from.
  54.     unsigned                MaxApps;      // max. # of apps given screen res.
  55.     unsigned                XExt;         // vertical screen size.
  56.     unsigned                YExt;         // horizontal screen size.
  57.     TPopupMenu              PopupMenu;    // main menu.
  58.     TAppMgr                 AppMgr;       // manages internal rep. of apps.
  59.     TAppButtonBar*          AppButtons;   // cache client object.
  60.     TBitmapGadget*          AppRemoverGadget; // used when no apps.
  61.     int                     CleanedUp;    // have we called shutdown routine?
  62.     int                     ConfirmOnRemove;  // confirm on remove enabled?
  63.     char*                   InUseEntries; // INI sections in use.
  64.     int                     CM_REQUEST_ID;// request ids from other instances.
  65.     int                     CM_SENDING_ID;// send id to other instances.
  66.     int                     WaitingForMsg;    // are we waiting for message?
  67.     TOpenSaveDialog::TData  FileData;     // save/restore info.
  68.  
  69.     int       DoAddApp(const string& path, int loc, const string& rec);
  70.     void      RemoveApp(unsigned loc);
  71.     TGadget*  CreateButton(string& path, int loc);
  72.     int       RestoreFromINIFile(unsigned secNumber = UINT_MAX);
  73.     int       RestoreXYLoc(const string& section);
  74.     int       RestoreOrientation(const string& section);
  75.     int       RestoreSaveOnExit(const string& section);
  76.     int       RestoreConfirmOnRemove(const string& section);
  77.     int       RestoreApps(const string& section);
  78.     int       GetINIEntry(const string& entry, const string& section,
  79.                           char* dest, unsigned destBufLen);
  80.     int       SaveToINIFile(unsigned secNumber);
  81.     int       SaveXYLoc(const string& section);
  82.     int       SaveOrientation(const string& section);
  83.     int       SaveSaveOnExit(const string& section);
  84.     int       SaveConfirmOnRemove(const string& section);
  85.     int       SaveApps(const string& section);
  86.     int       WriteINIEntry(const string& section, const string& entryKey,
  87.                             const string& entryValue);
  88.     void      UpdateAppButtons();
  89.     void      ReIdButtons();
  90.     void      DisplayHelp();
  91.     int       LocOfNearestButtonFromPoint(const TPoint& point);
  92.     void      AppLauncherCleanup();
  93.     bool      ConfirmRemove(const string& p);
  94.     void      AnimateAppRemoverGadget();
  95.  
  96.     // INI section management.
  97.     //
  98.     void      InitEntries();
  99.     int       SectionInUse(unsigned sec);
  100.     bool      MarkInUse(unsigned sec, bool mark);
  101.     unsigned  NextAvailableSection();
  102.     unsigned  NextSection();
  103.     int       INISectionExists(unsigned sec);
  104.     LRESULT   CmRequestId(WPARAM wParam, LPARAM lParam);
  105.     LRESULT   CmSendingId(WPARAM wParam, LPARAM lParam);
  106.     void      FillEntries(int skipClear = 0);
  107.     void      EvTimer(UINT);
  108.  
  109.   DECLARE_RESPONSE_TABLE(TAppWindow);
  110. };
  111.  
  112. #endif // __APPWIN_H
  113.